<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		[page:Material] &rarr;

		<h1>[name]</h1>

		<p class="desc">The default material used by [page:Points].</p>

		<h2>Code Example</h2>
		<code>
		const vertices = [];

		for ( let i = 0; i < 10000; i ++ ) {

			const x = THREE.MathUtils.randFloatSpread( 2000 );
			const y = THREE.MathUtils.randFloatSpread( 2000 );
			const z = THREE.MathUtils.randFloatSpread( 2000 );

			vertices.push( x, y, z );

		}

		const geometry = new THREE.BufferGeometry();
		geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );

		const material = new THREE.PointsMaterial( { color: 0x888888 } );

		const points = new THREE.Points( geometry, material );

		scene.add( points );
		</code>

		<h2>Examples</h2>
		<p>
			[example:misc_controls_fly misc / controls / fly]<br />
			[example:webgl_buffergeometry_drawrange WebGL / BufferGeometry / drawrange]<br />
			[example:webgl_buffergeometry_points WebGL / BufferGeometry / points]<br />
			[example:webgl_buffergeometry_points_interleaved WebGL / BufferGeometry / points / interleaved]<br />
			[example:webgl_camera WebGL / camera ]<br />
			[example:webgl_geometry_convex WebGL / geometry / convex]<br />
			[example:webgl_geometry_shapes WebGL / geometry / shapes]<br />
			[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points]<br />
			[example:webgl_multiple_elements_text WebGL / multiple / elements / text]<br />
			[example:webgl_points_billboards WebGL / points / billboards]<br />
			[example:webgl_points_dynamic WebGL / points / dynamic]<br />
			[example:webgl_points_sprites WebGL / points / sprites]<br />
			[example:webgl_trails WebGL / trails]
		</p>

		<h2>Constructor</h2>
		<h3>[name]( [param:Object parameters] )</h3>
		<p>
			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />

			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
		</p>

		<h2>Properties</h2>
		<p>See the base [page:Material] class for common properties.</p>

		<h3>[property:Texture alphaMap]</h3>
		<p>The alpha map is a grayscale texture that controls the opacity across the surface
			(black: fully transparent; white: fully opaque). Default is null.<br /><br />

			Only the color of the texture is used, ignoring the alpha channel if one exists.
			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
			green channel when sampling this texture due to the extra bit of precision provided
			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
			luminance/alpha textures will also still work as expected.
		</p>

		<h3>[property:Color color]</h3>
		<p>[page:Color] of the material, by default set to white (0xffffff).</p>

		<h3>[property:Texture map]</h3>
		<p>Sets the color of the points using data from a [page:Texture].</p>

		<h3>[property:Number size]</h3>
		<p>Sets the size of the points. Default is 1.0.<br/>
			Will be capped if it exceeds the hardware dependent parameter [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getParameter gl.ALIASED_POINT_SIZE_RANGE].</p>

		<h3>[property:Boolean sizeAttenuation]</h3>
		<p>Specify whether points' size is attenuated by the camera depth. (Perspective camera only.) Default is true.</p>


		<h2>Methods</h2>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
